precision mediump float;
uniform sampler2D uTexture;
varying vec2 vTexCoord;
uniform float uWidth;   // 纹理宽度
uniform float uHeight;  // 纹理高度

void main() {
    vec2 texelSize = vec2(1.0 / uWidth, 1.0 / uHeight);
    vec4 sum = vec4(0.0);
    for (int x = -2; x <= 2; x++) {
        for (int y = -2; y <= 2; y++) {
            sum += texture2D(uTexture, vTexCoord + vec2(x, y) * texelSize * 2.0);
        }
    }
    gl_FragColor = sum / 25.0;
}